#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdbool.h>

  //Definition for singly-linked list.
  struct ListNode {
      int val;
      struct ListNode *next;
  };
 

typedef struct ListNode* SL;
bool hasCycle(struct ListNode* head) {
    SL fast;
    SL slow;
    fast = slow = head;
    while (fast != NULL && fast->next != NULL)
    {
        fast = fast->next->next;
        slow = slow->next;
        if (fast == slow)
            return true;
    }
    return false;
}